As techniques of compress-coding (hereinafter simply referred to as “coding”) video data, MPEG (Motion Pictures Experts Group) coding methods using inter-frame differences are often employed.
The MPEG coding methods make use of the video property that there is a similarity between a current frame and a frame temporally close to the current frame. Taking advantage of this property, the data amount can be reduced by predicting the current frame from the temporally-close frame and coding the difference between the input image and the predicted image.
In general, a movement of an object in a frame and/or panning of a camera create a motion between frames, and thus the predicted image is generated using, as a reference image, an image shifted by the amount of motion.
A high compression rate can be achieved by coding the difference between the input image and the predicted image generated in the above manner and coding motion information (referred to as a motion vector). Such processing is known as motion compensated prediction.
Decoding or coding processing including the motion compensated prediction is performed on a picture partitioned into blocks each having a predetermined number of pixels (luminance components: 16×16 pixels). Such pixel blocks are called macroblocks. At the time of decoding, an image at a position indicated by a motion vector is obtained from a memory as a reference image on a macroblock-by-macroblock basis, so as to perform motion compensated prediction. Here, the data amount of one pixel is one byte.
As the MPEG coding methods, MPEG-2 (ISO/IEC 13818-2) and MPEG-4 (ISO/IEC 14496-2) are conventionally in use. In addition, recent years have seen increasing use of new coding methods such as H.264/MPEG-4 AVC (ISO/IEC 14496-10) (hereinafter simply referred to as “H.264”) and VC-1 (SMPTE 421M).
The new coding methods which are represented particularly by H.264 achieve a compression rate that is double to quadruple the compression rate of the conventional MPEG-2, and are widely used in compressing high-definition images such as full HD (high definition) images (1920×1080 pixels).
Meanwhile, there is recently a development of displays for super high-definition images of 4K2K (4096×2048 pixels) that extend beyond the full HD images, and the need to handle such super high-definition images will be inevitable.
However, the 4K2K image data has a data amount about quadruple that of full HD image data, and decoding the 4K2K image data requires an operation capability and a memory bandwidth that are about quadruple those required for decoding the full HD image data. How such high operation capability and wide memory bandwidth can be achieved is the key to providing an image decoding device capable of handling the super high-definition images of 4K2K.
To achieve high operation capability, one would consider parallel processing using multiple existing image decoding devices capable of handling the full HD image data. However, the new coding methods represented by H.264 have enhanced the compression rate in coding a current macroblock, using correlations between the current macroblock and neighboring macroblocks.
FIG. 1 is a diagram for explaining a decoding method which enhances the compression rate by making use of correlations between a current macroblock and neighboring macroblocks in accordance with H.264.
As shown in FIG. 1, decoding a given macroblock P requires reference to processing results of four neighboring macroblocks, namely, a left macroblock A, an upper left macroblock D, an upper macroblock B, and an upper right macroblock C.
In other words, decoding the current macroblock requires decoding of such neighboring macroblocks in advance, and for this reason such dependency between the current block and the neighboring blocks has been a problem in parallel processing.
In view of the above, there is a conventional image decoding device which performs parallel decoding of image data while solving the dependency problem (see Patent Literature 1, for example).
FIG. 2 is a diagram for explaining a decoding method adopted by a conventional image decoding device.
Each of blocks shown in FIG. 2 represents a macroblock of a picture. The numbers assigned to the macroblocks indicate the so processing time; macroblocks having the same number are simultaneously decoded in parallel.
As shown in FIG. 2, the processing starts with the upper left macroblock of the picture. A given current macroblock is decoded in parallel with a macroblock located two columns to the left in one row below with respect to the current macroblock. This solves the problem of positional dependency.